package com.yyfax.pay.third.model.to.fuioudeposit.xml;

import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.alibaba.fastjson.annotation.JSONField;
import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 * @author yejc
 * @date 2017-09-12
 * @since v1.0.0
 */
@XStreamAlias("plain")
public class UserInfoPlain {
	@JSONField(serialize = false)
	@XStreamAlias("resp_code")
	private String rspCode;

	@JSONField(serialize = false)
	@XStreamAlias("mchnt_nm")
	private String merchantName;

	@XStreamAlias("mchnt_cd")
	@JSONField(serialize = false)
	private String merchantCode;

	@XStreamAlias("mchnt_txn_ssn")
	@JSONField(serialize = false)
	private String queryBusiId;

	@XStreamAlias("results")
	private List<UserInfoPlain.UserInfoResult> results;

	public String getRspCode() {
		return rspCode;
	}

	public void setRspCode(String rspCode) {
		this.rspCode = rspCode;
	}

	public String getMerchantName() {
		return merchantName;
	}

	public void setMerchantName(String merchantName) {
		this.merchantName = merchantName;
	}

	public String getMerchantCode() {
		return merchantCode;
	}

	public void setMerchantCode(String merchantCode) {
		this.merchantCode = merchantCode;
	}

	public String getQueryBusiId() {
		return queryBusiId;
	}

	public void setQueryBusiId(String queryBusiId) {
		this.queryBusiId = queryBusiId;
	}

	public List<UserInfoResult> getResults() {
		return results;
	}

	public void setResults(List<UserInfoResult> results) {
		this.results = results;
	}

	@XStreamAlias("result")
	public class UserInfoResult {
		/**
		 * 手机号码
		 */
		@XStreamAlias("mobile_no")
		private String phone;
		/**
		 * 用户登录名
		 */
		@XStreamAlias("login_id")
		private String accountNo;
		/**
		 * 客户姓名
		 */
		@XStreamAlias("cust_nm")
		private String accountName;
		/**
		 * 身份证号码
		 */
		@XStreamAlias("certif_id")
		private String idNo;
		/**
		 * 邮箱地址
		 */
		@XStreamAlias("email")
		private String email;
		/**
		 * 开户行地区代码
		 */
		@XStreamAlias("city_id")
		@JSONField(serialize = false)
		private String city_id;
		/**
		 * 开户行行别
		 */
		@XStreamAlias("parent_bank_id")
		@JSONField(serialize = false)
		private String parent_bank_id;
		/**
		 * 开户行支行名称
		 */
		@XStreamAlias("bank_nm")
		@JSONField(serialize = false)
		private String bank_nm;
		/**
		 * 帐号
		 */
		@XStreamAlias("capAcntNo")
		private String cardNo;
		/**
		 * 卡密认证状态
		 */
		@XStreamAlias("card_pwd_verify_st")
		private String cardVerifyState;
		/**
		 * 账户信息验证状态
		 */
		@XStreamAlias("id_nm_verify_st")
		private String accountVerifyState;
		/**
		 * 账户生效状态
		 */
		@XStreamAlias("contract_st")
		private String contractState;
		/**
		 * 用户状态
		 */
		@XStreamAlias("user_st")
		private String userState;
		/**
		 * 用户类型
		 */
		@XStreamAlias("user_tp")
		private String userType;

		public String getPhone() {
			return phone;
		}

		public void setPhone(String phone) {
			this.phone = phone;
		}

		public String getAccountNo() {
			return accountNo;
		}

		public void setAccountNo(String accountNo) {
			this.accountNo = accountNo;
		}

		public String getAccountName() {
			return accountName;
		}

		public void setAccountName(String accountName) {
			this.accountName = accountName;
		}

		public String getIdNo() {
			return idNo;
		}

		public void setIdNo(String idNo) {
			this.idNo = idNo;
		}

		public String getEmail() {
			return email;
		}

		public void setEmail(String email) {
			this.email = email;
		}

		public String getCity_id() {
			return city_id;
		}

		public void setCity_id(String city_id) {
			this.city_id = city_id;
		}

		public String getParent_bank_id() {
			return parent_bank_id;
		}

		public void setParent_bank_id(String parent_bank_id) {
			this.parent_bank_id = parent_bank_id;
		}

		public String getBank_nm() {
			return bank_nm;
		}

		public void setBank_nm(String bank_nm) {
			this.bank_nm = bank_nm;
		}

		public String getCardNo() {
			return cardNo;
		}

		public void setCardNo(String cardNo) {
			this.cardNo = cardNo;
		}

		public String getCardVerifyState() {
			return cardVerifyState;
		}

		public void setCardVerifyState(String cardVerifyState) {
			this.cardVerifyState = cardVerifyState;
		}

		public String getAccountVerifyState() {
			return accountVerifyState;
		}

		public void setAccountVerifyState(String accountVerifyState) {
			this.accountVerifyState = accountVerifyState;
		}

		public String getContractState() {
			return contractState;
		}

		public void setContractState(String contractState) {
			this.contractState = contractState;
		}

		public String getUserState() {
			return userState;
		}

		public void setUserState(String userState) {
			this.userState = userState;
		}

		public String getUserType() {
			return userType;
		}

		public void setUserType(String userType) {
			this.userType = userType;
		}
		
		@Override
		public String toString() {
			return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
		}
	}
}
